import { constants } from "crypto"

/*
 * @Author: 大白
 * @Date: 2019-12-06 16:22:50
 * @LastEditors  : 大白
 * @LastEditTime : 2020-01-13 15:36:51
 * @Description: 文件描述
 * @FilePath: \cyf_admin\src\utils\recursion-router.js
 */
/**
 *
 * @param  {Array} userRouter 后台返回的用户权限json
 * @param  {Array} allRouter  前端配置好的所有动态路由的集合
 * @return {Array} realRoutes 过滤后的路由
 */

export function recursionRouter(userRouter = [], allRouter = []) {
    var realRoutes = []
    allRouter.forEach((v, i) => {
        // if (v.meta.state) {
        //     realRoutes.push(v)
        // }
        v.meta.role = ""
        userRouter.forEach((item, index) => {
            if (item.path === v.path) {                
                v.meta.icon = item.icon
                v.meta.role = item.role
              
                if (item.children && item.children.length > 0) {
                    v.children = recursionRouter(item.children, v.children)
                }
                realRoutes.push(v)
            }
        })
    })
    return realRoutes
}
/**
 *
 * @param {Array} routes 用户过滤后的路由
 *
 * 递归为所有有子路由的路由设置第一个children.path为默认路由
 */
export function setDefaultRoute(routes) {
    routes.forEach((v, i) => {
        if (v.children && v.children.length > 0) {
            v.redirect = { name: v.children[0].name }
            setDefaultRoute(v.children)
        }
    })
}
